Шаг 603 - CDialog::DoModal.

Автор Каев А. Г.
virtual int DoModal( );

Возвращаемое значение
Значение int, которое определяет значение nResult параметра, который был передан к CDialog::EndDialog функции, который используется, чтобы закрыть диалоговое окно. Возвращаемое значение было бы -1, если функция не могла бы создавать диалоговое окно, или IDABORT, если некоторая другая ошибка произошла.

Замечания
Вызовите эту функцию, чтобы вызвать модальное диалоговое окно и возвращать результат диалогового окна когда выполнено. Эта функция обрабатывает все взаимодействие с пользователем, в то время как диалоговое окно активно. Это - то, что делает диалоговое окно модальным, то есть пользователь не может взаимодействовать с другими окнами, пока диалоговое окно не закрыто.
Если пользователь нажимает одну из кнопок в диалоговом окне, типа OK или Cancel, функции драйвера сообщения, типа OnOK или OnCancel вызваны к попытке, чтобы закрыть диалоговое окно. Значение по умолчанию OnOK функции - проверить правильность и модифицировать данные диалогового окна и закрывать диалоговое окно с результатом IDOK. Эначение по умолчанию OnCancel функции - закроет диалоговое окно с результатом IDCANCEL без того, чтобы подтвердить правильность или модифицировать данные диалогового окна. Вы можете перегружать эти функции драйвера сообщения, чтобы изменить их поведение.

Пример

void CTstApp::OnAppAbout()
{
   // Создать диалоговое окно, передающее 
   // ID ресурса шаблона диалога
   CDialog aboutDlg(IDD_ABOUTBOX);

   // Создайте и покажите диалоговое окно
   int nRet = -1;
   nRet = aboutDlg.DoModal();

   // Обработайте возвращаемое значение из DoModal
   switch ( nRet )
   {
   case -1: 
      AfxMessageBox("Dialog box could not be created!");
      break;
   case IDABORT:
      // Делайте что то.
      break;
   case IDOK:
      // Делайте что то.
      break;
   case IDCANCEL:
      // Делайте что то.
      break;
   default:
      // Делайте что то.
      break;
   };
}

Hosted by uCoz